home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.3 (Developer)…68k, x86, SPARC, PA-RISC] / NeXTSTEP 3.3 Dev Intel.iso / NextDeveloper / Headers / ansi / string.h < prev    next >
Text File  |  1993-02-16  |  3KB  |  136 lines

  1. /* Copyright (c) 1988, 1992 NeXT Computer, Inc. */
  2.  
  3. #ifndef _ANSI_STRING_H
  4. #define _ANSI_STRING_H
  5.  
  6. #include <standards.h>
  7.  
  8. #ifdef __STRICT_BSD__
  9.  
  10. #import <strings.h>
  11. extern char *strcpyn();
  12. extern char *strcatn();
  13. extern int strcmpn();
  14. extern char *strchr();
  15. extern char *strrchr();
  16. extern char *strpbrk();
  17. extern int strspn();
  18. extern int strcspn();
  19. extern char *strtok();
  20.  
  21. #else /* ! __STRICT_BSD__ */
  22.  
  23. #ifdef __STRICT_ANSI__
  24. #ifndef _SIZE_T
  25. #define _SIZE_T
  26. typedef unsigned long size_t;
  27. #endif /* _SIZE_T */
  28.  
  29. #ifndef NULL
  30. #define NULL ((void *)0)
  31. #endif /* NULL */
  32.  
  33. #endif    /* __STRICT_ANSI__ */
  34.  
  35. #ifdef _NEXT_SOURCE
  36. #import <stddef.h>
  37. #endif
  38.  
  39. #ifdef __STDC__
  40.  
  41. extern void *memcpy(void *s1, const void *s2, size_t n);
  42. extern void *memmove(void *s1, const void *s2, size_t n);
  43. extern char *strcpy(char *s1, const char *s2);
  44. extern char *strncpy(char *s1, const char *s2, size_t n);
  45. extern char *strcat(char *s1, const char *s2);
  46. extern char *strncat(char *s1, const char *s2, size_t n);
  47. extern int memcmp(const void *s1, const void *s2, size_t n);
  48. extern int strcmp(const char *s1, const char *s2);
  49. #ifdef __STRICT_ANSI__
  50. extern int strcoll(char *to, size_t maxsize, const char *from);
  51. #else    /* !__STRICT_ANSI__ */
  52. extern size_t strcoll(char *to, size_t maxsize, const char *from);
  53. #endif    /* !__STRICT_ANSI__ */
  54. extern int strncmp(const char *s1, const char *s2, size_t n);
  55. #ifdef __STRICT_ANSI__
  56. size_t strxfrm(char *s1, const char *s2, size_t n);
  57. #endif  /* __STRICT_ANSI__ */
  58. extern void *memchr(const void *s, int c, size_t n);
  59. extern char *strchr(const char *s, int c);
  60. extern size_t strcspn(const char *s1, const char *s2);
  61. extern char *strpbrk(const char *s1, const char *s2);
  62. extern char *strrchr(const char *s, int c);
  63. extern size_t strspn(const char *s1, const char *s2);
  64. extern char *strstr(const char *s1, const char *s2);
  65. extern char *strtok(char *s1, const char *s2);
  66. extern void *memset(void *s, int c, size_t n);
  67. extern char *strerror(int errnum);
  68. extern size_t strlen(const char *s);
  69.  
  70. #else    /* !__STDC__ */
  71.  
  72. extern void *memcpy();
  73. extern void *memmove();
  74. extern char *strcpy();
  75. extern char *strncpy();
  76. extern char *strcat();
  77. extern char *strncat();
  78. extern int memcmp();
  79. extern int strcmp();
  80. #ifdef __STRICT_ANSI__
  81. extern int strcoll();
  82. #else    /* !__STRICT_ANSI__ */
  83. extern size_t strcoll();
  84. #endif    /* !__STRICT_ANSI__ */
  85. extern int strncmp();
  86. #ifdef __STRICT_ANSI__
  87. size_t strxfrm();
  88. #endif  /* __STRICT_ANSI__ */
  89. extern void *memchr();
  90. extern char *strchr();
  91. extern size_t strcspn();
  92. extern char *strpbrk();
  93. extern char *strrchr();
  94. extern size_t strspn();
  95. extern char *strstr();
  96. extern char *strtok();
  97. extern void *memset();
  98. extern char *strerror();
  99. extern size_t strlen();
  100.  
  101. #endif    /* !__STDC__ */
  102.  
  103. #ifdef _NEXT_SOURCE
  104. extern int strncasecmp(const char *s1, const char *s2, size_t n);
  105. extern int strcasecmp(const char *s1, const char *s2);
  106. #endif /* _NEXT_SOURCE */
  107.  
  108. #ifndef __STRICT_ANSI__
  109. /* added for BSD compatibility */
  110. #undef index
  111. extern char *index(const char *s, int c);
  112. #define index(s,c) strchr(s,c)
  113.  
  114. #undef rindex
  115. extern char *rindex(const char *s, int c);
  116. #define rindex(s,c) strrchr(s,c)
  117.  
  118. #undef bcopy
  119. #define bcopy(from,to,len) ((void)memmove(to,from,len))
  120.  
  121. #undef bcmp
  122. #define bcmp(s1,s2,len) memcmp(s1,s2,len)
  123.  
  124. #undef bzero
  125. #define bzero(b,len) memset(b,0,len)
  126.  
  127. /* obsolete trash, for BSD compatibility */
  128. extern char *strcpyn();
  129. extern char *strcatn();
  130. extern int strcmpn();
  131. #endif    /* !__STRICT_ANSI__ */
  132.  
  133. #endif    /* !__STRICT_BSD__ */
  134.  
  135. #endif    /* _ANSI_STRING_H */
  136.